<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>GROOPS - Regional geoid determination</title>

    <!-- JQuery and Popper -->
    <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>

    <!-- Bootstrap -->
    <!-- https://getbootstrap.com/docs/4.1/examples/ -->
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">

    <!-- Mathjax -->
    <script type="text/x-mathjax-config">
    MathJax.Hub.Config({tex2jax: {inlineMath: [ ['$','$'] ],
                                  displayMath: [ ["\\[","\\]"] ],
                                  processEscapes: true},
                        TeX:     {Macros: {M: ["{\\mathbf #1}",1]},
                                  equationNumbers: {autoNumber: "all"}  }});
    </script>
    <script async src="https://cdn.jsdelivr.net/npm/mathjax@2.7.7/MathJax.js?config=TeX-AMS_CHTML" integrity="sha384-e/4/LvThKH1gwzXhdbY2AsjR3rm7LHWyhIG5C0jiRfn8AN2eTN5ILeztWw0H9jmN" crossorigin="anonymous"></script>

    <!-- lunr -->
    <script src="https://cdn.jsdelivr.net/npm/lunr@2.3.8/lunr.min.js" integrity="sha384-vRQ9bDyE0Wnu+lMfm57BlYLO0/XauFuKpVsZPs7KEDwYKktWi5+Kz3MP8++DFlRY" crossorigin="anonymous"></script>

    <!-- Mustache -->
    <script src="https://cdn.jsdelivr.net/npm/mustache@4.0.1/mustache.min.js" integrity="sha384-0PLEZVBpOQ+Kqw3anJWSNWvRxpEFt02tSpBvyRsA4WcvX/OTldWdXxGLVLvh954H" crossorigin="anonymous"></script>

    <!-- GROOPS Stylesheet -->
    <link rel="stylesheet" href="static/groops.css"/>

    <!-- icon -->
    <link rel="icon" href="static/groops_icon.png">

</head>
<body>
    <header>
        <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
            <div class="container">
              <a class="navbar-brand" href="index.html"><img class="logo" src="static/groops_white.svg"></a>
              <div class="collapse navbar-collapse" id="mainNavbar">
                <ul class="navbar-nav mr-auto">
                  <li class="nav-item">
                    <a class="nav-link" href="programType.html">Programs</a>
                  </li>
                  <li class="nav-item">
                    <a class="nav-link" href="classes.html">Classes</a>
                  </li>
                  <li class="nav-item">
                    <a class="nav-link" href="general.parser.html">Parser</a>
                  </li>
                  <li class="nav-item">
                    <a class="nav-link" href="general.fileFormat.html">File Formats</a>
                  </li>
                </ul>
              </div>
                <form class="form-inline my-2 my-lg-0" action="search.html" id="searchTools">
                  <input class="form-control mr-sm-2" placeholder="Search" name="searchTerms" method="GET" value="" type="text" id="searchBox">
                  <button class="btn btn-secondary my-2 my-sm-0" type="submit" id="searchButton">Search</button>
                </form>
              <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#mainNavbar" aria-controls="mainNavbar" aria-expanded="false" aria-label="Toggle navigation" style="">
                <span class="navbar-toggler-icon"></span>
              </button>
            </div>
        </nav>
    </header>
    <main class="container px-0 pt-2 top-buffer">
        <div id="content" class="container">
            <h1 id="cookbook.regionalGeoid">Regional geoid determination</h1><p>
This shows exemplary the computation of a regional geoid using terrestrial gravimetric observations
in combination with a global satellite model such as GOCO06s. The geoid is estimated in a least squares adjustment with
a parametrization using radial basis functions. A detailed desciption of the method is given in
Christian Pock (2017), Consistent Combination of Satellite and Terrestrial Gravity Field Observations in Regional Geoid Modeling.
Dissertation TU Graz.</p><p>
<h2>Gravimetric data</h2><p>
Here it is assumed that the measured absolute gravity data is given at points in ellipsoidal coordinates.
The observed values should be converted to SI units $m/s^2$.
<ul>

  <li><a class="groops-program" href="Matrix2GriddedData.html">Matrix2GriddedData</a> to convert data from text file in tabular form.
</li></ul>
</p><p><figure><img class="figure" style="width:50%;" src="../figures/regionalGeoidGravimetricData.png" alt="regionalGeoidGravimetricData"><figcaption class="center">Figure: Distribution of gravimetric observations</figcaption></figure></p><p><h2>Topography</h2><p>
A high resolution topography model is needed to reduce the observations.
As the model heights are usually given in physical heights a reference geoid is needed to compute the correct ellipsoidal height.
<ul>

  <li><a class="groops-program" href="NetCdf2GridRectangular.html">NetCdf2GridRectangular</a> convert into groops format.
  </li><li>
<a class="groops-program" href="Gravityfield2GriddedData.html">Gravityfield2GriddedData</a>: Compute geoid heights using the GOCO06s model with
  <ul>

    </li><li>
<a class="groops-class" href="gridType.html#file">grid:file</a> The topography grid
    </li><li>
<a class="groops-class" href="kernelType.html#geoidHeight">kernel:geoidHeight</a>
    </li><li>
<a class="groops-class" href="gravityfieldType.html#potentialCoefficients">gravityfield:potentialCoefficients</a> the GOCO06s model
    </li><li>
<a class="groops-class" href="gravityfieldType.html#potentialCoefficients">gravityfield:potentialCoefficients</a>
    Subtract (<strong class="groops-config-element">factor</strong>=-1) GRS680 normal field.
  </li></ul>

  <li><a class="groops-program" href="GriddedDataCalculate.html">GriddedDataCalculate</a>: Generate a new combined griddedData file
        with the orthometric height (<code>data0</code>) and the geoid height (<code>data1</code>).
  </li><li>
<a class="groops-program" href="GriddedTopography2PotentialCoefficients.html">GriddedTopography2PotentialCoefficients</a>: Compute the gravitational potential in terms
        of spherical harmonics up to a maximum degree of the global satellite model.
        This is the part of the topography, which is already included in the global satellite model.
        The integration boundaries are <strong class="groops-config-element">radialUpperBound</strong>=<code>data0+data1</code>
        and <strong class="groops-config-element">radialLowerBound</strong>=<code>data1</code>.
</li></ul>
</p><p><figure><img class="figure" style="width:100%;" src="../figures/regionalGeoidTopography.png" alt="regionalGeoidTopography"><figcaption class="center">Figure: Topography and geoid heights</figcaption></figure></p><p><h2>Reduce</h2><p>
Calculate approximate reference gravity to reduce it from the observations.
<ul>

  <li><a class="groops-program" href="Gravityfield2AbsoluteGravity.html">Gravityfield2AbsoluteGravity</a>
  <ul>

    </li><li>
<a class="groops-class" href="gridType.html#file">grid:File</a> at observation positions
    </li><li>
<a class="groops-class" href="gravityfieldType.html#tides">gravityfield:tides</a> Centrifugal potential
    </li><li>
<a class="groops-class" href="gravityfieldType.html#potentialCoefficients">gravityfield:potentialCoefficients</a> full GOCO06s model
    </li><li>
<a class="groops-class" href="gravityfieldType.html#topography">gravityfield:topography</a>
          (<strong class="groops-config-element">radialUpperBound</strong>=<code>data0+data1</code>, <strong class="groops-config-element">radialLowerBound</strong>=<code>data1</code>)
    </li><li>
<a class="groops-class" href="gravityfieldType.html#potentialCoefficients">gravityfield:potentialCoefficients</a>
          Subtract (<strong class="groops-config-element">factor</strong>=-1) the potential part of the topography already included in the GOCO06s model.
  </li></ul>

  <li><a class="groops-program" href="GriddedDataCalculate.html">GriddedDataCalculate</a> to calculate observed minus computed.
  </li><li>
Large outliers can be removed in <a class="groops-program" href="GriddedDataCalculate.html">GriddedDataCalculate</a> with <strong class="groops-config-element">removalCriteria</strong>.
</li></ul>
</p><p><figure><img class="figure" style="width:50%;" src="../figures/regionalGeoidObserved-computed.png" alt="regionalGeoidObserved-computed"><figcaption class="center">Figure: Gravity disturbances: observed minus computed</figcaption></figure></p><p>
<h2>Radial Basis Functions (RBF)</h2><p>
The residual gravity is parametrized in terms of Radial Basis Functions
<a class="groops-class" href="parametrizationGravityType.html#radialBasis">parametrizationGravity:radialBasis</a>.
The basis functions should be distributed on a regular <a class="groops-class" href="gridType.html">grid</a> covering
a somewhat larger area than the observations, see <a class="groops-class" href="borderType.html">border</a>.
The shape of the functions <a class="groops-class" href="kernelType.html#coefficients">kernel:coefficients</a> should reflect
the signal content of reduced observations and are defined by the coefficients.
<ul>

  <li><a class="groops-program" href="RadialBasisSplines2KernelCoefficients.html">RadialBasisSplines2KernelCoefficients</a>
  <ul>

    </li><li>
<a class="groops-class" href="gravityfieldType.html#potentialCoefficients">gravityfield:potentialCoefficients</a> accuracies of GOCO06s model
    </li><li>
<strong class="groops-config-element">maxDegree</strong>=7000. Complemented by Kaula's rule of thumb
  </li></ul>

</ul>
The maximum degree should correspond to the spatial resolution.
Rule of thumb: the number of spherical harmonic coefficients $(\text{maxDegree}+1)^2$ should roughly agree
to the number of grid points if they would cover the complete Earth.</p><p><figure><img class="figure" style="width:50%;" src="../figures/regionalGeoidDegreeAmplitudes.png" alt="regionalGeoidDegreeAmplitudes"><figcaption class="center">Figure: Degree amplitudes for the shape of the radial basis functions</figcaption></figure></p><p><h2>Compute: Estimate parameters in a least squares adjustment</h2><p>
Setup the observation equations and accumulate the system of normal equations.
<ul>

<li><a class="groops-program" href="NormalsBuild.html">NormalsBuild</a>
  <ul>

    </li><li>
<a class="groops-class" href="normalEquationType.html#design">normalEquation:design</a> with
          <a class="groops-class" href="observationType.html#terrestrial">observation:terrestrial</a>
    <ul>

      </li><li>
<a class="groops-class" href="kernelType.html#disturbance">kernel:disturbance</a>
      </li><li>
<a class="groops-class" href="parametrizationGravityType.html#radialBasis">parametrizationGravity:radialBasis</a>
            with <a class="groops-class" href="kernelType.html#coefficients">kernel:coefficients</a>
    </li></ul>

  </ul>
<li><a class="groops-program" href="NormalsSolverVCE.html">NormalsSolverVCE</a>
  <ul>

    </li><li>
<a class="groops-class" href="normalEquationType.html#file">normalEquation:file</a> from <a class="groops-program" href="NormalsBuild.html">NormalsBuild</a>
    </li><li>
<a class="groops-class" href="normalEquationType.html#regularization">normalEquation:regularization</a>
           towards zero means regularization towards the GOCO06s, which is reduced from the data.
  </li></ul>

</ul></p><p><h2>Restore: Calculate the geoid solution</h2><p>
Evaluate the estimated parameters and add back the reduced reference models.
<ul>

  <li><a class="groops-program" href="Gravityfield2GriddedData.html">Gravityfield2GriddedData</a>: Compute approximate geoid heights using the GOCO06s model with
  <ul>

    </li><li>
<a class="groops-class" href="gridType.html">grid</a> select a grid with target resolution at elliposid
    </li><li>
<a class="groops-class" href="kernelType.html#geoidHeight">kernel:geoidHeight</a>
    </li><li>
<a class="groops-class" href="gravityfieldType.html#potentialCoefficients">gravityfield:potentialCoefficients</a> GOCO06s model
    </li><li>
<a class="groops-class" href="gravityfieldType.html#potentialCoefficients">gravityfield:potentialCoefficients</a>
    Subtract (<strong class="groops-config-element">factor</strong>=-1) GRS80 normal field.
  </li></ul>

  <li><a class="groops-program" href="GriddedDataCalculate.html">GriddedDataCalculate</a>: Move points from ellipsoid to geoid with <strong class="groops-config-element">height</strong>=<code>data0</code>
  </li><li>
<a class="groops-program" href="Gravityfield2GriddedData.html">Gravityfield2GriddedData</a>
  <ul>

    </li><li>
<a class="groops-class" href="gridType.html#file">grid:file</a> from above.
    </li><li>
<a class="groops-class" href="kernelType.html#geoidHeight">kernel:geoidHeight</a>
    </li><li>
<a class="groops-class" href="gravityfieldType.html#fromParametrization">gravityfield:fromParametrization</a>
          The solution vector $\M x$ together with the RBF parametrization
    </li><li>
<a class="groops-class" href="gravityfieldType.html#potentialCoefficients">gravityfield:potentialCoefficients</a> GOCO06s model
    </li><li>
<a class="groops-class" href="gravityfieldType.html#topography">gravityfield:topography</a>
          (<strong class="groops-config-element">radialUpperBound</strong>=<code>data0+data1</code>, <strong class="groops-config-element">radialLowerBound</strong>=<code>data1</code>)
    </li><li>
<a class="groops-class" href="gravityfieldType.html#potentialCoefficients">gravityfield:potentialCoefficients</a>
          Subtract (<strong class="groops-config-element">factor</strong>=-1) the potential part of the topography already included in the GOCO06s model.
    </li><li>
<a class="groops-class" href="gravityfieldType.html#potentialCoefficients">gravityfield:potentialCoefficients</a>
          Subtract (<strong class="groops-config-element">factor</strong>=-1) GRS80 normal field.
    </li><li>
<strong class="groops-config-element">convertToHarmonics</strong>=<code>no</code>, otherwise the RBF are converted to harmonics up to degree 7000.
  </li></ul>

  <li><a class="groops-program" href="GriddedDataCalculate.html">GriddedDataCalculate</a>: Set <strong class="groops-config-element">height</strong>=0 of the computed geoid grid.
  </li><li>
<a class="groops-program" href="GridRectangular2NetCdf.html">GridRectangular2NetCdf</a>
</li></ul>
</p><p><figure><img class="figure" style="width:60%;" src="../figures/regionalGeoidGeoid.png" alt="regionalGeoidGeoid"><figcaption class="center">Figure: Estimated geoid</figcaption></figure></p><p>

</p>

        </div>
    </main>
</body>
</html>
